package com.ys.mapper.business;

import com.ys.entity.business.TpShopAnalysisReportForms;
import com.ys.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * DAO
 * @author Jason
 */
public interface TpShopAnalysisReportFormsDiyMapper extends BaseMapper<TpShopAnalysisReportForms> {

	/**
	 * 统计预付款金额
	 */
	List<Map<String, Object>> tpShopAnalysisPrepayment(@Param("startTime") String startTime,@Param("endTime") String endTime);

	/**
	 * 起始报销时间
	 */
	List<Map<String, Object>> tpShopAnalysisStartSubmitTime(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 累计报销金额
     */
    List<Map<String, Object>> tpShopAnalysisTotalSubmitMoney(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 累计报销金额列表、预付款金额列表,用来计算回本时间
     */
    List<Map<String, Object>> tpShopAnalysisTotalSubmitMoneyList(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("companyId") String companyId);

    /**
     * 统计预付款金额列表,用来计算回本时间
     */
    //List<Map<String, Object>> tpShopAnalysisPrepaymentListByCompanyId(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("companyId") String companyId);

    /**
     * 统计的月份的次月1号资金
     */
    //List<Map<String, Object>> tpShopAnalysisMonthFirstMoney(@Param("countTime") String countTime);
    List<Map<String, Object>> tpShopAnalysisMonthFirstMoney(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 统计总订单数量、销售额
     */
    List<Map<String, Object>> tpShopAnalysisCountOrderAndSale(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 统计亚马逊回款、头程运费
     */
    List<Map<String, Object>> tpShopAnalysisAmazonBackAndFirstLegCost(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 获取管理绩效
     */
    List<Map<String, Object>> tpShopAnalysisMeritsManage();

    /**
     * 统计采购成本
     */
    List<Map<String, Object>> tpShopAnalysisProcureCost(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 统计快递运费FastMailCost、物流运费LogisticsCost
     */
    List<Map<String, Object>> tpShopAnalysisFastMailAndLogistics(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 统计包装费
     */
    List<Map<String, Object>> tpShopAnalysisPackCost(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 删除
     */
    int deleteShopAnalysisReportFormsByTime(@Param("infoTime") String infoTime);

    /**
     * 获取分析表数据，根据公司、月份
     */
    List<Map<String, Object>> shopAnalysisReportFormsByCompanyAndMonth(@Param("infoTime") String infoTime,@Param("companyId") String companyId);

    /**
     * 获取分析表数据，根据用户、月份
     */
    List<Map<String, Object>> shopAnalysisReportFormsByUserAndMonth(@Param("infoTime") String infoTime,@Param("userId") String userId);

    /**
     * 获取管理绩效分配
     */
    List<Map<String, Object>> tpShopAnalysisMeritsAllocation(@Param("startTime") String startTime,@Param("endTime") String endTime);

    /**
     * 获取分析表数据，根据组别、月份
     */
    List<Map<String, Object>> shopAnalysisReportFormsByDeptAndMonth(@Param("infoTime") String infoTime,@Param("deptId") String deptId);

    /**
     * 获取分析表数据，根据组别、月份
     */
    List<Map<String, Object>> shopAnalysisReportFormsByUserTableDate(@Param("infoTime") String infoTime,@Param("deptId") String deptId);

    /**
     * 获取分析表数据，统计上个月全部的数据
     */
    List<Map<String, Object>> shopAnalysisReportFormsByTotal(@Param("infoTime") String infoTime);

    /**
     * 获取分析表数据，根据运营机构、月份
     */
    List<Map<String, Object>> shopAnalysisReportFormsByOrgNameAndMonth(@Param("infoTime") String infoTime,@Param("orgName") String orgName);

    /**
     * 删除运营分析表（总和）
     */
    int deleteAnalysisReportFormsCountByInfoTime(@Param("infoTime") String infoTime);

    /**
     * 删除运营分析表（总和）
     */
    int deleteAnalysisReportFormsByInfoTime(@Param("infoTime") String infoTime);

    /**
     * 批量新增运营分析表数据
     */
    int insertAnalysisReportFormsByList(List<TpShopAnalysisReportForms> list);

}
